﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MealBooking.Core.Models.Meals;
using MealBooking.Core.Models.Dishes;

namespace MealBooking.Core.Services.Interface.MealService
{
    public interface IMealService
    {
        #region Meal
        Meal MealDetail(string mealId);
        List<Meal> MealDetails(List<string> mealIds);
        MealWithSum OrderNewMeal(Meal newMeal);
        #endregion

        #region MealCategory
        List<MealCategory> AllMealCategories();
        List<MealCategory> AllMealCategoriesDishTemplatesNotNull();
        MealCategory IsMealCategoryNameInUse(string newMealCategoryName);
        MealCategory MealCategoryDetail(string mealCategoryId);
        MealCategory AddNewMealCategory(MealCategory newMealCategory);
        MealCategory UpdateMealCategory(MealCategory newMealCategory);
        #endregion

        #region DishCategories in MealCategory
        List<DishCategory> DishCategoriesInMealCategory(string mealCategoryId);
        void AddDishCategoryToMealCategory(string mealCategoryId, DishCategory newDishCategory);
        #endregion

        #region Dishes in MealCategory
        Dictionary<DishTemplate, List<Dish>> DishTemplatesInMealCategory(string mealCategoryId);
        #endregion
    }
}
